Skip to main content link. Accesskey S
  • Help
  • HCL Logo
  • HCL Notes and Domino Application Development wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

Community articleXPages で最新バージョンの Dojo を利用する
Added by ~Justin Bubtoopul | Edited by ~Justin Bubtoopul on August 18, 2010 | Version 9
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: XPages, dojo, tips
ShowTable of Contents
HideTable of Contents
  • 1 はじめに
  • 2 最新のバージョンの Dojo を扱うメリットとデメリット
  • 3 dojo のカスタムビルドについて
  • 4 最新の dojo のダウンロード
  • 5 名前空間を変更してビルドする
  • 6 ビルドした dojo を配置する
  • 7 設置した dojo を XPages で利用する
  • 8 最後に

はじめに

 
 Domino サーバーには、予め XPages で利用する為の dojo がプリインストールされています。
例えば、8.5.1 であれば dojo 1.3.2、8.5.2 であれば dojo 1.4.1 がインストールされており、開発者はこれらの dojo の機能を使って、よりリッチなアプリケーションを開発する事ができます。
一方で、dojo はオープンソースの支援によって開発されている為、基本的に Domino のバージョンアップより早い速度で新しいバージョンがリリースされており、通常、開発者がこの恩恵を受けるには Domino のバージョンが上がり、プリインストールされた dojo のバージョンがあがるのを待たなければなりません。
そこで、このページでは既存の XPages のコアコントールなどに影響を与えない様に、dojo のカスタムビルドという機能を利用して、プリインストールされた dojo と、最新のバージョンの dojo を同じアプリケーション内で併用する方法を紹介します。

最新のバージョンの Dojo を扱うメリットとデメリット


最新のバージョンの dojo を使うメリットとしては、下記の点が挙げられます。
  • Domino に含まれている dojo のバージョンとは関係なく、常に最新の dojo の機能を利用できる。
  • dojo のカスタムビルドの機能を利用し、予めアプリケーションに必要な dojo のモジュールをひとつの JavaScript ファイルにまとめておく事により、dojo.require による遅い初期ロード時間を短縮できる。
  • 通常、Domino のバージョンアップにより dojo もバージョンアップされてしまう為、アプリケーション内で独自に dojo を利用している場合は Domino のバージョンアップの際に動作に問題が出ないかを常に確認する必要がある。しかし独自に dojo ライブラリを設置する方法をとれば、Domino のバージョンアップとは無関係に dojo のバージョンをコントロール出来る為、Domino バージョンアップにおけるアプリケーションへの影響を防ぐ事ができる。
一方で、この方法をとる事のデメリットや注意点は下記の様な点があります。
  • dojo ライブラリと関連する CSS やイメージを nsf 内にインポートする事が困難な為 、Domino サーバー上に最新の dojo を設置する必要がある。その為、単独のアプリケーションが利用するという理由だけでシステムへのファイル設置が許可されない場合は難しい。
  • 基本的に XPages の既存のコントロールや、XPages の dojoType, dojoAttribute 属性ではプリインストールされた dojo を利用する事が前提となる為、最新の dojo を利用する部分は Pure HTML と Client Side JavaScript でコーディングする事が基本になる。(または XPages Extensibility API を使用して、最新の dojo を利用した独自のコントロールを作成する方法もある。)
  • 次のセクションから、実際の使用方法について説明します。

dojo のカスタムビルドについて


dojo ではバージョン 1.3 以降、dojo、dijit、dojox といったデフォルトのネームスペースを変更する事により、複数のバージョンの dojo を併用する方法が用意されています。
今回の例では、Domino で利用されている dojo ではデフォルトのままの dojo、dijit、dojox というネームスペースを使用し、新しく設置する新しいバージョンの dojo ではネームスペースを dojo15、dijit15、dojox15 といったネームスペースに変更する事で、複数のバージョンをロードしても競合する事なく利用する事が可能になります。
 

最新の dojo のダウンロード


dojo の公式ページにアクセスし、ビルドツールが包含された Dojo SDK という最も大きなサイズのものをダウンロードします。
http://www.dojotoolkit.org/download/#sdk

記事執筆時点では 1.5.0 が最新な為、dojo 1.5.0 を使用します。
 

名前空間を変更してビルドする


ダウンロードしたファイルを解凍し、util\buildscripts に存在する build.bat を使用して、下記の様にカスタムビルドを作成します。
 
 
build.bat profile=standard action=release version=1.5.0 scopeMap="[[\"dojo\",\"dojo15\"],[\"dijit\",\"dijit15\"],[\"dojox\",\"dojox15\"]]"


 
上記のスクリプトでは、scopeMap の所で名前空間を変更してビルドしています。
このビルドスクリプトでは、メリットのセクションでも記載した通り、依存モジュールを予めひとつのスクリプトにまとめる事により、初期ロードのパフォーマンスを改善する事なども出来ます。
ビルドの詳細についてはこの記事では記載しない為、興味のある方は下記のページを参照してください。
http://www.dojotoolkit.org/reference-guide/build/buildScript.html
 

ビルドした dojo を配置する


ビルドした dojo を Domino サーバーに設置します。
ビルドが成功していると解凍したディレクトリの直下に release というディレクトリが生成され、そこにすべての JavaScript ファイル、CSSファイル、画像が設置されます。

下記の様に生成されたディレクトリ毎、Domino サーバーの dojo と同じディレクトリにコピーします。
 
 

xcopy /S /I /Y "releases\dojo" "C:\Program Files (x86)\IBM\Lotus\Notes\Data\domino\js\_dojo-1.5.0"


尚、上記のコピー先のディレクトリは Windows 7 64bit 版の Domino Designer のみがインストールされた環境のものです。環境によって異なる可能性がある為、適宜コピー先を変更して実行ください。
また、コピーはエクスプローラのコピーでも構いません。

NOTE: コピー先のディレクトリ名がアンダースコアからはじまっていますが、これは元々 dojo-1.5.0 とコピーした所、既存の XPages で読み込まれるバージョンがなぜか新しく設置した 1.5.0 を読み込む様になってしまった為、最初にアンダースコアを付けて回避しています。
おそらく、XPages の内部で dojo をロードする際に、Domino の JS ディレクトリ以下の dojo-{バージョン番号} という規則で最も新しいものを読み込む、といった様な実装になっているのかもしれません。
 

設置した dojo を XPages で利用する


これで最新の dojo の設置が完了したので、XPages で実際に使用してみます。
何事も Hello World から、という事で dojo のバージョンをアラート表示させてみましょう。
Domino Designer を開き、新しいアプリケーション、新しい XPages を作成し、下記の様に記述します。

<?xml version="1.0" encoding="UTF-8"?>
<!-- (1) dojo のテーマを使用する為、dojoTheme="true" を指定 -->
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"; dojoTheme="true">

     <!-- (2) 設置した最新の dojo の JS、CSS を読み込む。 -->
     <link rel="stylesheet" type="text/css" href="/domjs/_dojo-1.5.0/dojo/resources/dojo.css" />
     <script type="text/javascript" src="/domjs/_dojo-1.5.0/dojo/dojo.js"></script>

     <!-- (3) dojo の設定。 名前空間の変更をここでも指定する必要がある -->
     <script>
          djConfig = {
               isDebug : false,
               parseOnLoad: false,
               baseUrl: "/domjs/_dojo-1.5.0/dojo/",
               scopeMap: [
                    ["dojo", "dojo15"],
                    ["dijit", "dijit15"],
                    ["dojox", "dojox15"]
               ]
          };
     </script>
    
     <!-- (4) 最新の dojo を利用した Hello World -->
     <script type="text/javascript">
          dojo15.require("dijit.Dialog");
    
          dojo15.ready(function(){         
               new dijit15.Dialog({
                 title: 'Hello ' + dojo15.version,
                 style: 'width: 300px',
                 content: 'Hey!'
             }).show();
          });
     </script>

</xp:view>


  1. dojo のテーマを利用する為、XPages に dojoTheme="true" が指定されている事に注意してください。
  2. 設置した最新の dojo の JS, CSS の URL を指定しています。
  3. グローバル変数 djConfig で、ビルド時に変更した名前空間の変更を明示的に指定しています。
  4. 名前空間を変更した dojo15 という変数名で dojo 1.5.0 を利用し、dijit.Dialog ウィジェットを使ってメッセージを表示しています。
保存してプレビューを行うと、下記の様に最新の dojo を利用したダイアログメッセージが表示されます。

ダイアログのスクリーンショット

また、もちろんこの状態で XPages のコアコントロールを XSP ファイルにドラッグ & ドロップで配置して、プリインストールされたバージョンの dojo と、今書いた最新のバージョンの dojo を利用するコードを共存させる事が可能です。

最後に


以上で XPages で最新の dojo の機能を利用する方法をご紹介しましたが、様々なウィジェットや機能を XPages 上で利用するには、独特な HTML、CSS が障壁となり、少しコツがいるものがあるのは事実です。
このページではそのすべてを紹介する事は出来ていませんが、XPages によってオープンなテクノロジがプラットフォームになった事により、予め用意された方法だけでなく、様々な方法で Notes/Domino アプリケーションでもより自由に、より洗練されたアプリケーションを開発する事が出来るという可能性を秘めています。
このページがその可能性のひとつの入り口として、参考にして頂ければ幸いです。

expanded Attachments (1)
collapsed Attachments (1)
File TypeSizeFile NameCreated OnDelete file
image/x-png 8 KB Dialog.png 8/18/10, 5:19 PM
expanded Versions (17)
collapsed Versions (17)
Version Comparison     
VersionDateChanged by              Summary of changes
17Aug 18, 2010, 6:08:28 PM~Mary Frotumiskietsi  
16Aug 18, 2010, 6:06:03 PM~Justin Bubtoopul  
15Aug 18, 2010, 5:54:50 PM~Justin Bubtoopul  
14Aug 18, 2010, 5:53:45 PM~Justin Bubtoopul  
13Aug 18, 2010, 5:52:01 PM~Justin Bubtoopul  
12Aug 18, 2010, 5:34:45 PM~Justin Bubtoopul  
11Aug 18, 2010, 5:34:09 PM~Justin Bubtoopul  
10Aug 18, 2010, 5:32:52 PM~Justin Bubtoopul  
This version (9)Aug 18, 2010, 5:32:12 PM~Justin Bubtoopul  
8Aug 18, 2010, 5:31:33 PM~Justin Bubtoopul  
7Aug 18, 2010, 5:31:03 PM~Justin Bubtoopul  
6Aug 18, 2010, 5:27:23 PM~Justin Bubtoopul  
5Aug 18, 2010, 5:25:56 PM~Justin Bubtoopul  
4Aug 18, 2010, 5:25:20 PM~Justin Bubtoopul  
3Aug 18, 2010, 5:23:50 PM~Justin Bubtoopul  
2Aug 18, 2010, 5:22:46 PM~Justin Bubtoopul  
1Aug 18, 2010, 5:19:15 PM~Justin Bubtoopul  
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL
  • Privacy
  • Accessibility